home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Resources.p < prev    next >
Encoding:
Text File  |  1997-08-12  |  12.4 KB  |  370 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Resources.p
  3.  
  4.      Contains:    Resource Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1985-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Resources;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __RESOURCES__}
  28. {$SETC __RESOURCES__ := 1}
  29.  
  30. {$I+}
  31. {$SETC ResourcesIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __MIXEDMODE__}
  38. {$I MixedMode.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __FILES__}
  41. {$I Files.p}
  42. {$ENDC}
  43.  
  44.  
  45. {$PUSH}
  46. {$ALIGN MAC68K}
  47. {$LibExport+}
  48.  
  49.  
  50. CONST
  51.     resSysHeap                    = 64;                            { System or application heap? }
  52.     resPurgeable                = 32;                            { Purgeable resource? }
  53.     resLocked                    = 16;                            { Load it in locked? }
  54.     resProtected                = 8;                            { Protected? }
  55.     resPreload                    = 4;                            { Load in on OpenResFile? }
  56.     resChanged                    = 2;                            { Resource changed? }
  57.     mapReadOnly                    = 128;                            { Resource file read-only }
  58.     mapCompact                    = 64;                            { Compact resource file }
  59.     mapChanged                    = 32;                            { Write map out at update }
  60.  
  61.     resSysRefBit                = 7;                            { reference to system/local reference }
  62.     resSysHeapBit                = 6;                            { In system/in application heap }
  63.     resPurgeableBit                = 5;                            { Purgeable/not purgeable }
  64.     resLockedBit                = 4;                            { Locked/not locked }
  65.     resProtectedBit                = 3;                            { Protected/not protected }
  66.     resPreloadBit                = 2;                            { Read in at OpenResource? }
  67.     resChangedBit                = 1;                            { Existing resource changed since last update }
  68.     mapReadOnlyBit                = 7;                            { is this file read-only? }
  69.     mapCompactBit                = 6;                            { Is a compact necessary? }
  70.     mapChangedBit                = 5;                            { Is it necessary to write map? }
  71.  
  72.     kResFileNotOpened            = -1;                            { ref num return as error when opening a resource file }
  73.     kSystemResFile                = 0;                            { this is the default ref num to the system file }
  74.  
  75.  
  76.  
  77. TYPE
  78.     ResErrProcPtr = Register68kProcPtr;  { PROCEDURE ResErr(thErr: OSErr); }
  79.  
  80.     ResErrUPP = UniversalProcPtr;
  81.  
  82. CONST
  83.     uppResErrProcInfo = $00001002;
  84.  
  85. FUNCTION NewResErrProc(userRoutine: ResErrProcPtr): ResErrUPP;
  86.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  87.     INLINE $2E9F;
  88.     {$ENDC}
  89.  
  90. PROCEDURE CallResErrProc(thErr: OSErr; userRoutine: ResErrUPP);
  91.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  92.     {To be implemented:  Glue to move parameters into registers.}
  93.     {$ENDC}
  94. FUNCTION InitResources: INTEGER;
  95.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  96.     INLINE $A995;
  97.     {$ENDC}
  98. PROCEDURE RsrcZoneInit;
  99.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  100.     INLINE $A996;
  101.     {$ENDC}
  102. PROCEDURE CloseResFile(refNum: INTEGER);
  103.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  104.     INLINE $A99A;
  105.     {$ENDC}
  106. FUNCTION ResError: OSErr;
  107.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  108.     INLINE $A9AF;
  109.     {$ENDC}
  110. FUNCTION CurResFile: INTEGER;
  111.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  112.     INLINE $A994;
  113.     {$ENDC}
  114. FUNCTION HomeResFile(theResource: Handle): INTEGER;
  115.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  116.     INLINE $A9A4;
  117.     {$ENDC}
  118. PROCEDURE CreateResFile(fileName: ConstStr255Param);
  119.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  120.     INLINE $A9B1;
  121.     {$ENDC}
  122. FUNCTION OpenResFile(fileName: ConstStr255Param): INTEGER;
  123.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  124.     INLINE $A997;
  125.     {$ENDC}
  126. PROCEDURE UseResFile(refNum: INTEGER);
  127.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  128.     INLINE $A998;
  129.     {$ENDC}
  130. FUNCTION CountTypes: INTEGER;
  131.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  132.     INLINE $A99E;
  133.     {$ENDC}
  134. FUNCTION Count1Types: INTEGER;
  135.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  136.     INLINE $A81C;
  137.     {$ENDC}
  138. PROCEDURE GetIndType(VAR theType: ResType; index: INTEGER);
  139.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  140.     INLINE $A99F;
  141.     {$ENDC}
  142. PROCEDURE Get1IndType(VAR theType: ResType; index: INTEGER);
  143.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  144.     INLINE $A80F;
  145.     {$ENDC}
  146. PROCEDURE SetResLoad(load: BOOLEAN);
  147.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  148.     INLINE $A99B;
  149.     {$ENDC}
  150. FUNCTION CountResources(theType: ResType): INTEGER;
  151.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  152.     INLINE $A99C;
  153.     {$ENDC}
  154. FUNCTION Count1Resources(theType: ResType): INTEGER;
  155.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  156.     INLINE $A80D;
  157.     {$ENDC}
  158. FUNCTION GetIndResource(theType: ResType; index: INTEGER): Handle;
  159.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  160.     INLINE $A99D;
  161.     {$ENDC}
  162. FUNCTION Get1IndResource(theType: ResType; index: INTEGER): Handle;
  163.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  164.     INLINE $A80E;
  165.     {$ENDC}
  166. FUNCTION GetResource(theType: ResType; theID: INTEGER): Handle;
  167.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  168.     INLINE $A9A0;
  169.     {$ENDC}
  170. FUNCTION Get1Resource(theType: ResType; theID: INTEGER): Handle;
  171.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  172.     INLINE $A81F;
  173.     {$ENDC}
  174. FUNCTION GetNamedResource(theType: ResType; name: ConstStr255Param): Handle;
  175.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  176.     INLINE $A9A1;
  177.     {$ENDC}
  178. FUNCTION Get1NamedResource(theType: ResType; name: ConstStr255Param): Handle;
  179.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  180.     INLINE $A820;
  181.     {$ENDC}
  182. PROCEDURE LoadResource(theResource: Handle);
  183.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  184.     INLINE $A9A2;
  185.     {$ENDC}
  186. PROCEDURE ReleaseResource(theResource: Handle);
  187.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  188.     INLINE $A9A3;
  189.     {$ENDC}
  190. PROCEDURE DetachResource(theResource: Handle);
  191.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  192.     INLINE $A992;
  193.     {$ENDC}
  194. FUNCTION UniqueID(theType: ResType): INTEGER;
  195.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  196.     INLINE $A9C1;
  197.     {$ENDC}
  198. FUNCTION Unique1ID(theType: ResType): INTEGER;
  199.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  200.     INLINE $A810;
  201.     {$ENDC}
  202. FUNCTION GetResAttrs(theResource: Handle): INTEGER;
  203.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  204.     INLINE $A9A6;
  205.     {$ENDC}
  206. PROCEDURE GetResInfo(theResource: Handle; VAR theID: INTEGER; VAR theType: ResType; VAR name: Str255);
  207.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  208.     INLINE $A9A8;
  209.     {$ENDC}
  210. PROCEDURE SetResInfo(theResource: Handle; theID: INTEGER; name: ConstStr255Param);
  211.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  212.     INLINE $A9A9;
  213.     {$ENDC}
  214. PROCEDURE AddResource(theData: Handle; theType: ResType; theID: INTEGER; name: ConstStr255Param);
  215.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  216.     INLINE $A9AB;
  217.     {$ENDC}
  218. FUNCTION GetResourceSizeOnDisk(theResource: Handle): LONGINT;
  219.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  220.     INLINE $A9A5;
  221.     {$ENDC}
  222. FUNCTION GetMaxResourceSize(theResource: Handle): LONGINT;
  223.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  224.     INLINE $A821;
  225.     {$ENDC}
  226. FUNCTION RsrcMapEntry(theResource: Handle): LONGINT;
  227.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  228.     INLINE $A9C5;
  229.     {$ENDC}
  230. PROCEDURE SetResAttrs(theResource: Handle; attrs: INTEGER);
  231.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  232.     INLINE $A9A7;
  233.     {$ENDC}
  234. PROCEDURE ChangedResource(theResource: Handle);
  235.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  236.     INLINE $A9AA;
  237.     {$ENDC}
  238. PROCEDURE RemoveResource(theResource: Handle);
  239.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  240.     INLINE $A9AD;
  241.     {$ENDC}
  242. PROCEDURE UpdateResFile(refNum: INTEGER);
  243.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  244.     INLINE $A999;
  245.     {$ENDC}
  246. PROCEDURE WriteResource(theResource: Handle);
  247.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  248.     INLINE $A9B0;
  249.     {$ENDC}
  250. PROCEDURE SetResPurge(install: BOOLEAN);
  251.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  252.     INLINE $A993;
  253.     {$ENDC}
  254. FUNCTION GetResFileAttrs(refNum: INTEGER): INTEGER;
  255.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  256.     INLINE $A9F6;
  257.     {$ENDC}
  258. PROCEDURE SetResFileAttrs(refNum: INTEGER; attrs: INTEGER);
  259.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  260.     INLINE $A9F7;
  261.     {$ENDC}
  262. FUNCTION OpenRFPerm(fileName: ConstStr255Param; vRefNum: INTEGER; permission: SInt8): INTEGER;
  263.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  264.     INLINE $A9C4;
  265.     {$ENDC}
  266. FUNCTION RGetResource(theType: ResType; theID: INTEGER): Handle;
  267.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  268.     INLINE $A80C;
  269.     {$ENDC}
  270. {
  271.     Note:     The HOpenResFile trap was not implemented until System 7.  If you want to call HOpenResFile
  272.             while running on System 6 machines, then define USE_HOPENRESFILE_GLUE and link with
  273.             Interface.o which contains glue to implement HOpenResFile on pre-System 7 machines.
  274. }
  275. {$IFC NOT UNDEFINED USE_HOPENRESFILE_GLUE }
  276. FUNCTION HOpenResFile(vRefNum: INTEGER; dirID: LONGINT; fileName: ConstStr255Param; permission: SInt8): INTEGER;
  277. {$ELSEC}
  278. FUNCTION HOpenResFile(vRefNum: INTEGER; dirID: LONGINT; fileName: ConstStr255Param; permission: SInt8): INTEGER;
  279.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  280.     INLINE $A81A;
  281.     {$ENDC}
  282. {$ENDC}
  283.  
  284. {
  285.     Note:     The HCreateResFile trap was not implemented until System 7.  If you want to call HCreateResFile
  286.             while running on System 6 machines, then define USE_HCREATERESFILE_GLUE and link with
  287.             Interface.o which contains glue to implement HCreateResFile on pre-System 7 machines.
  288. }
  289. {$IFC NOT UNDEFINED USE_HCREATERESFILE_GLUE }
  290. PROCEDURE HCreateResFile(vRefNum: INTEGER; dirID: LONGINT; fileName: ConstStr255Param);
  291. {$ELSEC}
  292. PROCEDURE HCreateResFile(vRefNum: INTEGER; dirID: LONGINT; fileName: ConstStr255Param);
  293.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  294.     INLINE $A81B;
  295.     {$ENDC}
  296. {$ENDC}
  297.  
  298. FUNCTION FSpOpenResFile({CONST}VAR spec: FSSpec; permission: SignedByte): INTEGER;
  299.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  300.     INLINE $700D, $AA52;
  301.     {$ENDC}
  302. PROCEDURE FSpCreateResFile({CONST}VAR spec: FSSpec; creator: OSType; fileType: OSType; scriptTag: ScriptCode);
  303.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  304.     INLINE $700E, $AA52;
  305.     {$ENDC}
  306. PROCEDURE ReadPartialResource(theResource: Handle; offset: LONGINT; buffer: UNIV Ptr; count: LONGINT);
  307.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  308.     INLINE $7001, $A822;
  309.     {$ENDC}
  310. PROCEDURE WritePartialResource(theResource: Handle; offset: LONGINT; buffer: UNIV Ptr; count: LONGINT);
  311.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  312.     INLINE $7002, $A822;
  313.     {$ENDC}
  314. PROCEDURE SetResourceSize(theResource: Handle; newSize: LONGINT);
  315.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  316.     INLINE $7003, $A822;
  317.     {$ENDC}
  318. FUNCTION GetNextFOND(fondHandle: Handle): Handle;
  319.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  320.     INLINE $700A, $A822;
  321.     {$ENDC}
  322. { Use TempInsertROMMap to force the ROM resource map to be
  323.    inserted into the chain in front of the system. Note that
  324.    this call is only temporary - the modified resource chain
  325.    is only used for the next call to the resource manager.
  326.    See IM IV 19 for more information. 
  327. }
  328. PROCEDURE TempInsertROMMap(tempResLoad: BOOLEAN);
  329.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  330.     INLINE $70FF, $4A1F, $56C0, $31C0, $0B9E;
  331.     {$ENDC}
  332.  
  333. {$IFC OLDROUTINENAMES }
  334. FUNCTION SizeResource(theResource: Handle): LONGINT;
  335.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  336.     INLINE $A9A5;
  337.     {$ENDC}
  338. FUNCTION MaxSizeRsrc(theResource: Handle): LONGINT;
  339.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  340.     INLINE $A821;
  341.     {$ENDC}
  342. PROCEDURE RmveResource(theResource: Handle);
  343.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  344.     INLINE $A9AD;
  345.     {$ENDC}
  346.  
  347. {$ENDC}  {OLDROUTINENAMES}
  348.  
  349. {
  350.     These typedefs were originally created for the Copland Resource Mangager
  351. }
  352.  
  353. TYPE
  354.     ResFileRefNum                        = INTEGER;
  355.     ResID                                = INTEGER;
  356.     ResAttributes                        = INTEGER;
  357.     ResFileAttributes                    = INTEGER;
  358.  
  359.  
  360. {$ALIGN RESET}
  361. {$POP}
  362.  
  363. {$SETC UsingIncludes := ResourcesIncludes}
  364.  
  365. {$ENDC} {__RESOURCES__}
  366.  
  367. {$IFC NOT UsingIncludes}
  368.  END.
  369. {$ENDC}
  370.